#include <iostream>
#include<string>
#include<cstdlib>
#include<unistd.h>
#include<signal.h>
#include<sys/types.h>

using namespace std;

void myhandler(int signo)
{
    cout<<"process get a signal"<<signo<<endl;
}

void Usage(string proc)
{
    cout<<"Usage:\n\t"<<proc<<"signum pid\n";
}
int main(int argc,char*argv[])
{
    if(argc!=3)
    {
        Usage(argv[0]);
        exit(1);
    }
    int signum=stoi(argv[1]);
    pid_t pid=stoi(argv[2]);
    int n=kill(pid,signum);
    if(n==-1)
    {
        perror("kill");
        exit(2);
    }
    return 0;
}
// int main(int argc,char*argv[])
// {
//     //signal(2,myhandler);
//     signal(SIGABRT,myhandler);
//     int cnt=0;
//     while(true)
//     {
//         cout<<"I am a process: "<<getpid()<<endl;
//         sleep(1);
//         cnt++;
//         if(cnt==5)
//         {
//             //kill(getpid(),2);
//             //raise(2);
//             abort();
//         }
//     }
//      return 0;
// }

// void myhandler(int signo)
// {
//     cout<<"process get a signal"<<signo<<endl;
//     exit(1);
// }

// int main()
// {
//     signal(SIGINT,myhandler);//捕捉信号，设置一次往后都有效
//     while(true)
//     {
//         cout<<"I am a crazy process: "<<getpid()<<endl;
//         sleep(1);
//     }
// }